package com.oner365.test.function.demo;

public class DemoUtils {
  
  /**
   * 参数为true时抛出异常
   * 
   * @param b 
   * @return ThrowExceptionFunction     
   **/
  public static ThrowExceptionFunction isException(boolean b) {
    return (message) ->{
      if(b) {
        throw new RuntimeException(message);
      }
    };
  }
  
  
  /**
   * 参数为true或false时，分别进行不同的操作 
   * 
   * @param b 
   * @return BranchHandle     
   **/
  public static BranchHandle isTureOrFalse(boolean b){
      
      return (trueHandle, falseHandle) -> {
          if (b){
              trueHandle.run();
          } else {
              falseHandle.run();
          }
      };
  }
  
  /**
   * 参数为null或不为null时，分别进行不同的操作
   *
   * @param str
   * @return PresentOrElseHandler
   **/
  public static PresentOrElseHandler<?> isBlankOrNoBlank(String str){
      return (consumer, runnable) -> {
          if (str == null || str.length() == 0){
              runnable.run();
          } else {
              consumer.accept(str);
          }
      };
  }

}
